{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random,datetime\n",
    "from bisect import bisect_left\n",
    "from math import exp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "diagonalSize = 10\n",
    "maxAge = 5000\n",
    "nSquared = diagonalSize * diagonalSize\n",
    "geneset = [i for i in range(1, nSquared + 1)]\n",
    "expectedSum = diagonalSize * (nSquared + 1) / 2\n",
    "geneIndexes = [i for i in range(0, len(geneset))]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Fitness:\n",
    "    def __init__(self, sumOfDifferences):\n",
    "        self.SumOfDifferences = sumOfDifferences\n",
    "\n",
    "    def __gt__(self, other):\n",
    "        return self.SumOfDifferences < other.SumOfDifferences\n",
    "\n",
    "    def __str__(self):\n",
    "        return \"{}\".format(self.SumOfDifferences)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_sums(genes):\n",
    "    rows = [0 for _ in range(diagonalSize)]\n",
    "    columns = [0 for _ in range(diagonalSize)]\n",
    "    southeastDiagonalSum = 0\n",
    "    northeastDiagonalSum = 0\n",
    "    for row in range(diagonalSize):\n",
    "        for column in range(diagonalSize):\n",
    "            value = genes[row * diagonalSize + column]\n",
    "            rows[row] += value\n",
    "            columns[column] += value\n",
    "        southeastDiagonalSum += genes[row * diagonalSize + row]\n",
    "        northeastDiagonalSum += genes[row * diagonalSize +\n",
    "                                      (diagonalSize - 1 - row)]\n",
    "    return rows, columns, northeastDiagonalSum, southeastDiagonalSum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_fitness(genes):\n",
    "    rows, columns, northeastDiagonalSum, southeastDiagonalSum = \\\n",
    "        get_sums(genes)\n",
    "\n",
    "    sumOfDifferences = sum(int(abs(s - expectedSum))\n",
    "                           for s in rows + columns +\n",
    "                           [southeastDiagonalSum, northeastDiagonalSum]\n",
    "                           if s != expectedSum)\n",
    "\n",
    "    return Fitness(sumOfDifferences)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def display(candidate, startTime):\n",
    "    timeDiff = datetime.datetime.now() - startTime\n",
    "\n",
    "    rows, columns, northeastDiagonalSum, southeastDiagonalSum = \\\n",
    "        get_sums(candidate.Genes)\n",
    "\n",
    "    for rowNumber in range(diagonalSize):\n",
    "        row = candidate.Genes[\n",
    "              rowNumber * diagonalSize:(rowNumber + 1) * diagonalSize]\n",
    "        print(\"\\t \", row, \"=\", rows[rowNumber])\n",
    "    print(northeastDiagonalSum, \"\\t\", columns, \"\\t\", southeastDiagonalSum)\n",
    "    print(\" - - - - - - - - - - -\", candidate.Fitness, timeDiff)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def mutate(chm):\n",
    "    genes = chm.Genes[:]\n",
    "    indexA, indexB = random.sample(geneIndexes,2)\n",
    "    genes[indexA], genes[indexB] = genes[indexB], genes[indexA]\n",
    "    return Chromosome(genes, get_fitness(genes))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Chromosome:\n",
    "    def __init__(self, genes, fitness):\n",
    "        self.Genes = genes\n",
    "        self.Fitness = fitness\n",
    "        self.Age = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "#初始化初代种群的方法\n",
    "def fnCustomCreate():\n",
    "    gens = random.sample(geneset, len(geneset))\n",
    "    ch1 = Chromosome(gens, get_fitness(gens))\n",
    "    return ch1\n",
    "\n",
    "# 这是一个内部方法，用来不断生成进化种群\n",
    "# 里面使用是Python特有的yield方法，用于返回生成的种群\n",
    "# yield的用法，见Python语法原理。\n",
    "def _get_improvement():\n",
    "    # 随机初始化初代种群，对于遗传算法来说，初始情况完全不重要\n",
    "    parent = bestParent = fnCustomCreate()\n",
    "    yield bestParent\n",
    "     # 历史健壮性集合，这个集合可以记录历史上一些最佳的健壮性\n",
    "    historicalFitnesses = [bestParent.Fitness]\n",
    "    while True:\n",
    "        child = mutate(parent)\n",
    "        if parent.Fitness > child.Fitness:\n",
    "            # 本节算法用maxAge这个参数来控制单次迭代的数量\n",
    "            # 主要为了解决局部过大或者过小的问题，也就是说\n",
    "            if maxAge is None:\n",
    "                continue\n",
    "            parent.Age += 1\n",
    "            # 初始化的时候设置maxAge为50，表示跟踪这个父本基因进化50次\n",
    "            # 生成出来的子代基因的健壮性还不如父本的话，这父本基因就直接被设置死亡\n",
    "            # 如果超过了代数，设置这个基因死亡，然后考虑换一个基因来进行替代。\n",
    "            # 划重点：这是模拟退火算法里面的核心思维\n",
    "            if maxAge > parent.Age:\n",
    "                continue\n",
    "            # 我们来计算，本次进化的健壮性，在整个历史进化过程中所有健壮性的位置。\n",
    "            index = bisect_left(historicalFitnesses, child.Fitness, 0,\n",
    "                                len(historicalFitnesses))\n",
    "            # 直接把这个位置转换成比例\n",
    "            proportionSimilar = index / len(historicalFitnesses)\n",
    "            # 如果子代的健壮性很好，那么它的指数就会很高（如果排名历史第一（值为0）\n",
    "            # 则指数就会很高，百分之百会让这个子代变成下一次进化的父本。\n",
    "            # 反之，排名月底，成为父本的概率也就越低\n",
    "            # 就继续用这个父本进行进化\n",
    "            if random.random() < exp(-proportionSimilar):\n",
    "                parent = child\n",
    "                continue\n",
    "            # 否则，用初始化的父本来替换成需要进化的父本\n",
    "            # 也就是丢弃本轮进化，从新回退到上一次最佳父本的状态\n",
    "            bestParent.Age = 0\n",
    "            parent = bestParent\n",
    "            continue\n",
    "        # 如果子体的健壮性要比父本好，则子体替换父本，成为新的进化的父本\n",
    "        # 替换了之后，子体的年龄要继承父本的年龄，并且继续增长。\n",
    "        if not child.Fitness > parent.Fitness:\n",
    "            child.Age = parent.Age + 1\n",
    "            parent = child\n",
    "            continue\n",
    "        child.Age = 0\n",
    "        parent = child\n",
    "        # 如果本次进化的子体比最佳父本效果还好，那么用这次进化的子体去替换最好的父本\n",
    "        # 然后把上一次最好的父本加入到历史父本中。\n",
    "        if child.Fitness > bestParent.Fitness:\n",
    "            bestParent = child\n",
    "            yield bestParent\n",
    "            historicalFitnesses.append(bestParent.Fitness)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_best():\n",
    "    startTime = datetime.datetime.now()\n",
    "    optimalFitness = Fitness(0)\n",
    "    # 迭代执行\n",
    "    # 直到到达进化目标\n",
    "    for improvement in _get_improvement():\n",
    "        display(improvement,startTime)\n",
    "        if not optimalFitness > improvement.Fitness:\n",
    "            return improvement"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\t  [4, 64, 10, 93, 19, 81, 60, 47, 59, 90] = 527\n",
      "\t  [16, 15, 24, 14, 21, 71, 48, 50, 40, 2] = 301\n",
      "\t  [70, 49, 34, 25, 23, 32, 57, 42, 37, 51] = 420\n",
      "\t  [63, 66, 27, 45, 13, 46, 54, 98, 82, 85] = 579\n",
      "\t  [7, 99, 6, 97, 87, 75, 33, 17, 20, 96] = 537\n",
      "\t  [86, 95, 61, 18, 77, 35, 56, 92, 94, 11] = 625\n",
      "\t  [26, 12, 79, 22, 1, 65, 36, 5, 29, 76] = 351\n",
      "\t  [67, 53, 100, 83, 39, 73, 62, 38, 89, 55] = 659\n",
      "\t  [41, 44, 91, 68, 84, 58, 3, 78, 72, 88] = 627\n",
      "\t  [52, 28, 9, 80, 30, 69, 31, 43, 74, 8] = 424\n",
      "596 \t [432, 525, 441, 545, 394, 605, 440, 510, 596, 562] \t 374\n",
      " - - - - - - - - - - - 1896 0:00:00\n",
      "\t  [4, 64, 10, 93, 19, 81, 60, 47, 59, 90] = 527\n",
      "\t  [16, 15, 24, 14, 21, 71, 48, 50, 40, 2] = 301\n",
      "\t  [70, 49, 34, 25, 23, 32, 57, 42, 37, 51] = 420\n",
      "\t  [63, 66, 27, 45, 13, 46, 54, 98, 83, 85] = 580\n",
      "\t  [7, 99, 6, 97, 87, 75, 38, 17, 20, 96] = 542\n",
      "\t  [86, 95, 61, 18, 77, 35, 56, 92, 94, 11] = 625\n",
      "\t  [26, 12, 79, 22, 1, 65, 36, 5, 29, 76] = 351\n",
      "\t  [67, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 653\n",
      "\t  [41, 44, 91, 68, 84, 58, 3, 78, 72, 88] = 627\n",
      "\t  [52, 28, 9, 80, 30, 69, 31, 43, 74, 8] = 424\n",
      "596 \t [432, 525, 441, 544, 394, 605, 445, 505, 597, 562] \t 369\n",
      " - - - - - - - - - - - 1891 0:00:00.003989\n",
      "\t  [4, 64, 10, 93, 19, 81, 60, 47, 59, 90] = 527\n",
      "\t  [16, 15, 24, 14, 21, 71, 48, 50, 40, 2] = 301\n",
      "\t  [70, 49, 34, 25, 23, 32, 57, 42, 37, 51] = 420\n",
      "\t  [63, 12, 27, 45, 13, 46, 54, 98, 83, 85] = 526\n",
      "\t  [7, 99, 6, 97, 87, 75, 38, 17, 20, 96] = 542\n",
      "\t  [86, 95, 61, 18, 77, 35, 56, 92, 94, 11] = 625\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [67, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 653\n",
      "\t  [41, 44, 91, 68, 84, 58, 3, 78, 72, 88] = 627\n",
      "\t  [52, 28, 9, 80, 30, 69, 31, 43, 74, 8] = 424\n",
      "596 \t [432, 525, 441, 544, 394, 605, 445, 505, 597, 562] \t 369\n",
      " - - - - - - - - - - - 1783 0:00:00.005986\n",
      "\t  [4, 64, 10, 15, 19, 81, 60, 47, 59, 90] = 449\n",
      "\t  [16, 93, 24, 14, 21, 71, 48, 50, 40, 2] = 379\n",
      "\t  [70, 49, 34, 25, 23, 32, 57, 42, 37, 51] = 420\n",
      "\t  [63, 12, 27, 45, 13, 46, 54, 98, 83, 85] = 526\n",
      "\t  [7, 99, 6, 97, 87, 75, 38, 17, 20, 96] = 542\n",
      "\t  [86, 95, 61, 18, 77, 35, 56, 92, 94, 11] = 625\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [67, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 653\n",
      "\t  [41, 44, 91, 68, 84, 58, 3, 78, 72, 88] = 627\n",
      "\t  [52, 28, 9, 80, 30, 69, 31, 43, 74, 8] = 424\n",
      "596 \t [432, 603, 441, 466, 394, 605, 445, 505, 597, 562] \t 447\n",
      " - - - - - - - - - - - 1739 0:00:00.008975\n",
      "\t  [4, 64, 10, 15, 19, 81, 60, 47, 59, 90] = 449\n",
      "\t  [16, 93, 24, 14, 21, 71, 48, 50, 2, 40] = 379\n",
      "\t  [70, 49, 34, 25, 23, 32, 57, 42, 37, 51] = 420\n",
      "\t  [63, 12, 27, 45, 13, 46, 54, 98, 83, 85] = 526\n",
      "\t  [7, 99, 6, 97, 87, 75, 38, 17, 20, 96] = 542\n",
      "\t  [86, 95, 61, 18, 77, 35, 56, 92, 94, 11] = 625\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [67, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 653\n",
      "\t  [41, 44, 91, 68, 84, 58, 3, 78, 72, 88] = 627\n",
      "\t  [52, 28, 9, 80, 30, 69, 31, 43, 74, 8] = 424\n",
      "558 \t [432, 603, 441, 466, 394, 605, 445, 505, 559, 600] \t 447\n",
      " - - - - - - - - - - - 1701 0:00:00.013964\n",
      "\t  [4, 64, 10, 15, 19, 81, 60, 47, 59, 90] = 449\n",
      "\t  [16, 93, 24, 14, 84, 71, 48, 50, 2, 40] = 442\n",
      "\t  [70, 49, 34, 25, 23, 32, 57, 42, 37, 51] = 420\n",
      "\t  [63, 12, 27, 45, 13, 46, 54, 98, 83, 85] = 526\n",
      "\t  [7, 99, 6, 97, 87, 75, 67, 17, 20, 96] = 571\n",
      "\t  [86, 95, 61, 18, 77, 35, 56, 92, 94, 11] = 625\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [38, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 624\n",
      "\t  [41, 44, 91, 68, 21, 58, 3, 78, 72, 88] = 564\n",
      "\t  [52, 28, 9, 80, 30, 69, 31, 43, 74, 8] = 424\n",
      "558 \t [403, 603, 441, 466, 394, 605, 474, 505, 559, 600] \t 447\n",
      " - - - - - - - - - - - 1575 0:00:00.018951\n",
      "\t  [96, 64, 10, 15, 19, 81, 60, 47, 59, 90] = 541\n",
      "\t  [16, 93, 24, 14, 84, 71, 48, 50, 2, 40] = 442\n",
      "\t  [70, 49, 34, 25, 23, 32, 57, 42, 37, 51] = 420\n",
      "\t  [63, 12, 27, 45, 13, 46, 54, 98, 83, 85] = 526\n",
      "\t  [7, 99, 6, 97, 87, 75, 67, 17, 20, 4] = 479\n",
      "\t  [86, 95, 61, 18, 77, 35, 56, 92, 94, 11] = 625\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [38, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 624\n",
      "\t  [41, 44, 91, 68, 21, 58, 3, 78, 72, 88] = 564\n",
      "\t  [52, 28, 9, 80, 30, 69, 31, 43, 74, 8] = 424\n",
      "558 \t [495, 603, 441, 466, 394, 605, 474, 505, 559, 508] \t 539\n",
      " - - - - - - - - - - - 1307 0:00:00.025930\n",
      "\t  [96, 64, 10, 15, 19, 81, 60, 47, 59, 90] = 541\n",
      "\t  [16, 93, 24, 14, 84, 71, 48, 50, 2, 40] = 442\n",
      "\t  [70, 49, 34, 25, 23, 32, 57, 42, 37, 51] = 420\n",
      "\t  [63, 12, 27, 45, 58, 46, 54, 98, 83, 95] = 581\n",
      "\t  [7, 99, 6, 97, 87, 75, 67, 17, 20, 4] = 479\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 94, 11] = 615\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [38, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 624\n",
      "\t  [41, 44, 91, 68, 21, 13, 3, 78, 72, 88] = 519\n",
      "\t  [52, 28, 9, 80, 30, 69, 31, 43, 74, 8] = 424\n",
      "558 \t [495, 593, 441, 466, 439, 560, 474, 505, 559, 518] \t 539\n",
      " - - - - - - - - - - - 1217 0:00:00.026927\n",
      "\t  [96, 64, 10, 15, 19, 81, 60, 47, 59, 90] = 541\n",
      "\t  [16, 93, 24, 14, 84, 71, 48, 50, 2, 40] = 442\n",
      "\t  [70, 49, 34, 28, 23, 32, 57, 42, 37, 51] = 423\n",
      "\t  [63, 12, 27, 45, 58, 46, 54, 98, 83, 95] = 581\n",
      "\t  [7, 99, 6, 97, 87, 75, 67, 17, 20, 4] = 479\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 94, 11] = 615\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [38, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 624\n",
      "\t  [41, 44, 91, 68, 21, 13, 3, 78, 72, 88] = 519\n",
      "\t  [52, 25, 9, 80, 30, 69, 31, 43, 74, 8] = 421\n",
      "558 \t [495, 590, 441, 469, 439, 560, 474, 505, 559, 518] \t 539\n",
      " - - - - - - - - - - - 1211 0:00:00.028921\n",
      "\t  [96, 64, 10, 15, 19, 81, 60, 30, 59, 90] = 524\n",
      "\t  [16, 93, 24, 14, 84, 71, 48, 50, 2, 40] = 442\n",
      "\t  [70, 49, 34, 28, 23, 32, 57, 42, 37, 51] = 423\n",
      "\t  [63, 12, 27, 45, 58, 46, 54, 98, 83, 95] = 581\n",
      "\t  [7, 99, 6, 97, 87, 75, 67, 17, 20, 4] = 479\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 94, 11] = 615\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [38, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 624\n",
      "\t  [41, 44, 91, 68, 21, 13, 3, 78, 72, 88] = 519\n",
      "\t  [52, 25, 9, 80, 47, 69, 31, 43, 74, 8] = 438\n",
      "558 \t [495, 590, 441, 469, 456, 560, 474, 488, 559, 518] \t 539\n",
      " - - - - - - - - - - - 1177 0:00:00.031914\n",
      "\t  [96, 64, 10, 15, 19, 81, 60, 30, 59, 90] = 524\n",
      "\t  [16, 93, 24, 14, 84, 71, 48, 50, 2, 40] = 442\n",
      "\t  [70, 49, 34, 28, 23, 32, 57, 42, 37, 51] = 423\n",
      "\t  [63, 12, 27, 45, 58, 46, 54, 98, 83, 95] = 581\n",
      "\t  [7, 99, 25, 97, 87, 75, 67, 17, 20, 4] = 498\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 94, 11] = 615\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [38, 53, 100, 82, 39, 73, 62, 33, 89, 55] = 624\n",
      "\t  [41, 44, 91, 68, 21, 13, 3, 78, 72, 88] = 519\n",
      "\t  [52, 6, 9, 80, 47, 69, 31, 43, 74, 8] = 419\n",
      "558 \t [495, 571, 460, 469, 456, 560, 474, 488, 559, 518] \t 539\n",
      " - - - - - - - - - - - 1139 0:00:00.036902\n",
      "\t  [96, 53, 10, 15, 19, 81, 60, 30, 59, 90] = 513\n",
      "\t  [16, 93, 24, 14, 84, 71, 48, 50, 2, 40] = 442\n",
      "\t  [70, 49, 34, 67, 23, 32, 57, 42, 37, 51] = 462\n",
      "\t  [63, 12, 27, 33, 58, 46, 54, 98, 83, 95] = 569\n",
      "\t  [7, 99, 25, 97, 87, 75, 28, 17, 20, 4] = 459\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 94, 11] = 615\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [45, 64, 100, 82, 39, 73, 62, 38, 89, 55] = 647\n",
      "\t  [41, 44, 91, 68, 21, 13, 3, 78, 72, 88] = 519\n",
      "\t  [52, 6, 9, 80, 47, 69, 31, 43, 74, 8] = 419\n",
      "558 \t [502, 571, 460, 496, 456, 560, 435, 493, 559, 518] \t 532\n",
      " - - - - - - - - - - - 1132 0:00:00.042886\n",
      "\t  [96, 53, 10, 15, 19, 81, 60, 30, 59, 90] = 513\n",
      "\t  [16, 93, 24, 14, 84, 71, 91, 50, 2, 40] = 485\n",
      "\t  [70, 49, 34, 67, 23, 32, 57, 42, 37, 51] = 462\n",
      "\t  [63, 12, 27, 33, 58, 46, 54, 98, 83, 95] = 569\n",
      "\t  [7, 99, 25, 97, 87, 75, 28, 17, 20, 4] = 459\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 94, 11] = 615\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [45, 64, 100, 82, 39, 73, 62, 38, 89, 55] = 647\n",
      "\t  [41, 44, 48, 68, 21, 13, 3, 78, 72, 88] = 476\n",
      "\t  [52, 6, 9, 80, 47, 69, 31, 43, 74, 8] = 419\n",
      "558 \t [502, 571, 417, 496, 456, 560, 478, 493, 559, 518] \t 532\n",
      " - - - - - - - - - - - 1104 0:00:00.044879\n",
      "\t  [96, 53, 10, 15, 19, 81, 60, 30, 59, 90] = 513\n",
      "\t  [16, 93, 24, 14, 84, 71, 91, 50, 2, 40] = 485\n",
      "\t  [70, 49, 34, 67, 23, 32, 57, 42, 37, 51] = 462\n",
      "\t  [63, 12, 27, 33, 58, 46, 54, 98, 83, 95] = 569\n",
      "\t  [64, 99, 25, 97, 87, 75, 28, 17, 20, 4] = 516\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 94, 11] = 615\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [45, 7, 100, 82, 39, 73, 62, 38, 89, 55] = 590\n",
      "\t  [41, 44, 48, 68, 21, 13, 3, 78, 72, 88] = 476\n",
      "\t  [52, 6, 9, 80, 47, 69, 31, 43, 74, 8] = 419\n",
      "558 \t [559, 514, 417, 496, 456, 560, 478, 493, 559, 518] \t 532\n",
      " - - - - - - - - - - - 1006 0:00:00.050865\n",
      "\t  [96, 53, 10, 15, 19, 81, 60, 30, 59, 90] = 513\n",
      "\t  [71, 93, 24, 14, 84, 16, 91, 50, 2, 40] = 485\n",
      "\t  [70, 49, 34, 67, 23, 32, 57, 42, 37, 51] = 462\n",
      "\t  [17, 12, 27, 33, 58, 46, 54, 98, 83, 95] = 523\n",
      "\t  [64, 99, 25, 97, 87, 75, 28, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [26, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 405\n",
      "\t  [45, 7, 100, 82, 39, 73, 62, 38, 89, 55] = 590\n",
      "\t  [41, 44, 48, 68, 21, 13, 3, 78, 72, 88] = 476\n",
      "\t  [52, 6, 9, 80, 47, 69, 31, 43, 74, 8] = 419\n",
      "558 \t [568, 514, 417, 496, 456, 505, 478, 570, 528, 518] \t 532\n",
      " - - - - - - - - - - - 982 0:00:00.052859\n",
      "\t  [96, 53, 10, 15, 26, 81, 60, 30, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 91, 50, 7, 40] = 490\n",
      "\t  [70, 49, 34, 67, 23, 32, 57, 42, 37, 51] = 462\n",
      "\t  [17, 12, 27, 33, 58, 46, 54, 98, 83, 95] = 523\n",
      "\t  [64, 99, 25, 97, 87, 75, 28, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 66, 79, 22, 1, 65, 36, 5, 29, 76] = 398\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 3, 78, 72, 88] = 476\n",
      "\t  [52, 6, 9, 80, 47, 69, 31, 43, 74, 8] = 419\n",
      "563 \t [561, 509, 417, 496, 463, 505, 478, 570, 533, 518] \t 532\n",
      " - - - - - - - - - - - 977 0:00:00.054854\n",
      "\t  [96, 53, 10, 15, 26, 81, 60, 30, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 91, 50, 7, 40] = 490\n",
      "\t  [70, 49, 34, 67, 23, 32, 57, 42, 37, 51] = 462\n",
      "\t  [17, 12, 27, 33, 58, 46, 54, 98, 83, 95] = 523\n",
      "\t  [64, 99, 25, 97, 87, 75, 28, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 65, 36, 5, 29, 66] = 398\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 3, 78, 31, 88] = 435\n",
      "\t  [52, 6, 9, 80, 47, 69, 72, 43, 74, 8] = 460\n",
      "563 \t [561, 519, 417, 496, 463, 505, 519, 570, 492, 508] \t 491\n",
      " - - - - - - - - - - - 936 0:00:00.058841\n",
      "\t  [96, 53, 10, 15, 26, 81, 60, 30, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 42, 37, 51] = 504\n",
      "\t  [17, 12, 27, 33, 58, 46, 54, 98, 83, 91] = 519\n",
      "\t  [64, 99, 25, 97, 87, 75, 28, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 23, 36, 5, 29, 66] = 356\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 3, 78, 31, 88] = 435\n",
      "\t  [52, 6, 9, 80, 47, 69, 72, 43, 74, 8] = 460\n",
      "563 \t [561, 519, 417, 496, 505, 463, 523, 570, 492, 504] \t 491\n",
      " - - - - - - - - - - - 930 0:00:00.065972\n",
      "\t  [96, 53, 10, 15, 26, 81, 60, 30, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 42, 31, 51] = 498\n",
      "\t  [17, 12, 27, 33, 58, 46, 54, 98, 83, 91] = 519\n",
      "\t  [64, 99, 25, 97, 87, 75, 28, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 23, 36, 5, 29, 66] = 356\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 3, 78, 37, 88] = 441\n",
      "\t  [52, 6, 9, 80, 47, 69, 72, 43, 74, 8] = 460\n",
      "563 \t [561, 519, 417, 496, 505, 463, 523, 570, 492, 504] \t 497\n",
      " - - - - - - - - - - - 924 0:00:00.077907\n",
      "\t  [96, 53, 10, 15, 26, 81, 60, 30, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 42, 31, 51] = 498\n",
      "\t  [17, 12, 27, 33, 58, 46, 23, 98, 83, 91] = 488\n",
      "\t  [64, 99, 25, 97, 87, 75, 28, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 3, 78, 37, 88] = 441\n",
      "\t  [52, 6, 9, 80, 47, 69, 72, 43, 74, 8] = 460\n",
      "532 \t [561, 519, 417, 496, 505, 494, 492, 570, 492, 504] \t 497\n",
      " - - - - - - - - - - - 829 0:00:00.082892\n",
      "\t  [96, 53, 10, 15, 26, 81, 60, 30, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 42, 31, 51] = 498\n",
      "\t  [17, 12, 27, 33, 58, 46, 23, 98, 83, 91] = 488\n",
      "\t  [64, 99, 25, 97, 87, 75, 28, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 9, 80, 47, 69, 72, 3, 74, 8] = 420\n",
      "532 \t [561, 519, 417, 496, 505, 494, 532, 530, 492, 504] \t 497\n",
      " - - - - - - - - - - - 803 0:00:00.093863\n",
      "\t  [96, 53, 10, 15, 26, 81, 60, 30, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 42, 31, 51] = 498\n",
      "\t  [17, 12, 27, 33, 58, 46, 23, 98, 83, 91] = 488\n",
      "\t  [64, 99, 28, 97, 87, 75, 25, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 9, 80, 47, 69, 72, 3, 74, 8] = 420\n",
      "532 \t [561, 519, 420, 496, 505, 494, 529, 530, 492, 504] \t 497\n",
      " - - - - - - - - - - - 797 0:00:00.097852\n",
      "\t  [96, 53, 10, 15, 26, 81, 60, 30, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 33, 31, 51] = 489\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 91] = 497\n",
      "\t  [64, 99, 28, 97, 87, 75, 25, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 9, 80, 47, 69, 72, 3, 74, 8] = 420\n",
      "523 \t [561, 519, 420, 505, 505, 494, 529, 521, 492, 504] \t 506\n",
      " - - - - - - - - - - - 763 0:00:00.101843\n",
      "\t  [96, 53, 30, 15, 26, 81, 60, 10, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 33, 31, 51] = 489\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 91] = 497\n",
      "\t  [64, 99, 28, 97, 87, 75, 25, 94, 20, 4] = 593\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 9, 80, 47, 69, 72, 3, 74, 8] = 420\n",
      "523 \t [561, 519, 440, 505, 505, 494, 529, 501, 492, 504] \t 506\n",
      " - - - - - - - - - - - 731 0:00:00.103835\n",
      "\t  [96, 53, 30, 15, 26, 81, 60, 10, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 33, 31, 51] = 489\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 91] = 497\n",
      "\t  [64, 99, 28, 97, 87, 75, 25, 69, 20, 4] = 568\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 38, 89, 55] = 585\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 9, 80, 47, 94, 72, 3, 74, 8] = 445\n",
      "523 \t [561, 519, 440, 505, 505, 519, 529, 476, 492, 504] \t 506\n",
      " - - - - - - - - - - - 709 0:00:00.107846\n",
      "\t  [96, 53, 30, 15, 26, 81, 60, 10, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 33, 31, 51] = 489\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 91] = 497\n",
      "\t  [64, 99, 28, 97, 87, 75, 25, 69, 20, 4] = 568\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 9, 89, 55] = 556\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 74, 8] = 474\n",
      "523 \t [561, 519, 469, 505, 505, 519, 529, 447, 492, 504] \t 477\n",
      " - - - - - - - - - - - 678 0:00:00.110819\n",
      "\t  [96, 53, 30, 15, 26, 81, 60, 10, 59, 90] = 520\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 33, 31, 51] = 489\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 28, 91, 87, 75, 25, 69, 20, 4] = 562\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 9, 89, 55] = 556\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 74, 8] = 474\n",
      "523 \t [561, 519, 469, 499, 505, 519, 529, 447, 492, 510] \t 477\n",
      " - - - - - - - - - - - 676 0:00:00.111817\n",
      "\t  [96, 53, 30, 15, 26, 81, 60, 10, 59, 74] = 504\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 32, 57, 33, 31, 51] = 489\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 28, 91, 87, 75, 25, 69, 20, 4] = 562\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [45, 2, 100, 82, 39, 73, 62, 9, 89, 55] = 556\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [561, 519, 469, 499, 505, 519, 529, 447, 508, 494] \t 477\n",
      " - - - - - - - - - - - 626 0:00:00.114807\n",
      "\t  [96, 53, 30, 15, 26, 81, 60, 10, 59, 74] = 504\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [70, 49, 34, 67, 65, 45, 57, 33, 31, 51] = 502\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 28, 91, 87, 75, 25, 69, 20, 4] = 562\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [32, 2, 100, 82, 39, 73, 62, 9, 89, 55] = 543\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [548, 519, 469, 499, 505, 532, 529, 447, 508, 494] \t 477\n",
      " - - - - - - - - - - - 600 0:00:00.115805\n",
      "\t  [96, 53, 30, 15, 26, 81, 60, 10, 59, 74] = 504\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [51, 49, 34, 67, 65, 45, 57, 33, 31, 70] = 502\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 28, 91, 87, 75, 25, 69, 20, 4] = 562\n",
      "\t  [86, 85, 61, 18, 77, 35, 56, 92, 63, 11] = 584\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [32, 2, 100, 82, 39, 73, 62, 9, 89, 55] = 543\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [529, 519, 469, 499, 505, 532, 529, 447, 508, 513] \t 477\n",
      " - - - - - - - - - - - 578 0:00:00.118808\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [51, 49, 34, 67, 65, 45, 57, 33, 31, 70] = 502\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 28, 91, 87, 75, 25, 69, 20, 4] = 562\n",
      "\t  [86, 85, 61, 15, 77, 35, 56, 92, 63, 11] = 581\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [32, 2, 100, 82, 39, 73, 62, 9, 89, 55] = 543\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [529, 519, 469, 499, 505, 532, 529, 447, 508, 513] \t 477\n",
      " - - - - - - - - - - - 576 0:00:00.151740\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [51, 49, 34, 67, 65, 45, 57, 33, 31, 70] = 502\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 28, 91, 89, 75, 25, 69, 20, 4] = 564\n",
      "\t  [86, 85, 61, 15, 77, 35, 56, 92, 63, 11] = 581\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 66] = 387\n",
      "\t  [32, 2, 100, 82, 39, 73, 62, 9, 87, 55] = 541\n",
      "\t  [41, 44, 48, 68, 21, 13, 43, 78, 37, 88] = 481\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [529, 519, 469, 499, 507, 532, 529, 447, 506, 513] \t 479\n",
      " - - - - - - - - - - - 574 0:00:00.152739\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [51, 49, 34, 67, 65, 45, 57, 33, 31, 70] = 502\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 28, 91, 89, 75, 25, 69, 20, 4] = 564\n",
      "\t  [86, 85, 61, 15, 77, 35, 56, 92, 63, 11] = 581\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 48] = 369\n",
      "\t  [32, 2, 100, 82, 39, 73, 62, 9, 87, 55] = 541\n",
      "\t  [41, 44, 66, 68, 21, 13, 43, 78, 37, 88] = 499\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [529, 519, 487, 499, 507, 532, 529, 447, 506, 495] \t 479\n",
      " - - - - - - - - - - - 558 0:00:00.158689\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [71, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 494\n",
      "\t  [51, 49, 34, 67, 65, 45, 57, 33, 31, 70] = 502\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 62, 91, 89, 75, 25, 69, 20, 4] = 598\n",
      "\t  [86, 85, 61, 15, 77, 35, 56, 92, 63, 11] = 581\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 48] = 369\n",
      "\t  [32, 2, 100, 82, 39, 73, 28, 9, 87, 55] = 507\n",
      "\t  [41, 44, 66, 68, 21, 13, 43, 78, 37, 88] = 499\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [529, 519, 521, 499, 507, 532, 495, 447, 506, 495] \t 479\n",
      " - - - - - - - - - - - 542 0:00:00.161069\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 84, 16, 95, 50, 7, 40] = 490\n",
      "\t  [51, 49, 34, 71, 65, 45, 57, 33, 31, 70] = 506\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 62, 91, 89, 75, 25, 69, 20, 4] = 598\n",
      "\t  [86, 85, 61, 15, 77, 35, 56, 92, 63, 11] = 581\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 48] = 369\n",
      "\t  [32, 2, 100, 82, 39, 73, 28, 9, 87, 55] = 507\n",
      "\t  [41, 44, 66, 68, 21, 13, 43, 78, 37, 88] = 499\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [525, 519, 521, 503, 507, 532, 495, 447, 506, 495] \t 479\n",
      " - - - - - - - - - - - 536 0:00:00.163057\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 89, 16, 95, 50, 7, 40] = 495\n",
      "\t  [51, 49, 34, 71, 65, 45, 57, 33, 31, 70] = 506\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 62, 91, 84, 75, 25, 69, 20, 4] = 593\n",
      "\t  [86, 85, 61, 15, 77, 35, 56, 92, 63, 11] = 581\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 5, 29, 48] = 369\n",
      "\t  [32, 2, 100, 82, 39, 73, 28, 9, 87, 55] = 507\n",
      "\t  [41, 44, 66, 68, 21, 13, 43, 78, 37, 88] = 499\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [525, 519, 521, 503, 507, 532, 495, 447, 506, 495] \t 474\n",
      " - - - - - - - - - - - 531 0:00:00.165052\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 89, 16, 95, 50, 7, 40] = 495\n",
      "\t  [51, 49, 34, 71, 65, 45, 57, 33, 31, 70] = 506\n",
      "\t  [17, 12, 27, 42, 58, 46, 23, 98, 83, 97] = 503\n",
      "\t  [64, 99, 62, 91, 84, 75, 25, 69, 20, 4] = 593\n",
      "\t  [86, 85, 61, 15, 77, 35, 56, 92, 63, 11] = 581\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 13, 29, 48] = 377\n",
      "\t  [32, 2, 100, 82, 39, 73, 28, 9, 87, 55] = 507\n",
      "\t  [41, 44, 66, 68, 21, 5, 43, 78, 37, 88] = 491\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [525, 519, 521, 503, 507, 524, 495, 455, 506, 495] \t 474\n",
      " - - - - - - - - - - - 515 0:00:00.166065\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 89, 16, 95, 50, 7, 40] = 495\n",
      "\t  [42, 49, 34, 71, 65, 45, 57, 33, 31, 70] = 497\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [64, 99, 62, 91, 84, 75, 25, 69, 20, 4] = 593\n",
      "\t  [86, 85, 61, 15, 77, 35, 56, 92, 63, 11] = 581\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 13, 29, 48] = 377\n",
      "\t  [32, 2, 100, 82, 39, 73, 28, 9, 87, 55] = 507\n",
      "\t  [41, 44, 66, 68, 21, 5, 43, 78, 37, 88] = 491\n",
      "\t  [52, 6, 38, 80, 47, 94, 72, 3, 90, 8] = 490\n",
      "507 \t [516, 519, 521, 512, 507, 524, 495, 455, 506, 495] \t 483\n",
      " - - - - - - - - - - - 514 0:00:00.167080\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 89, 16, 95, 50, 7, 40] = 495\n",
      "\t  [42, 47, 34, 71, 65, 45, 57, 33, 31, 70] = 495\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 84, 75, 25, 69, 20, 4] = 577\n",
      "\t  [86, 85, 61, 15, 77, 35, 56, 92, 63, 11] = 581\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 13, 29, 64] = 393\n",
      "\t  [32, 2, 100, 82, 39, 73, 28, 9, 87, 55] = 507\n",
      "\t  [41, 44, 66, 68, 21, 5, 43, 78, 37, 88] = 491\n",
      "\t  [52, 6, 38, 80, 49, 94, 72, 3, 90, 8] = 492\n",
      "507 \t [500, 517, 521, 512, 509, 524, 495, 455, 506, 511] \t 483\n",
      " - - - - - - - - - - - 472 0:00:00.168075\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 89, 16, 95, 50, 7, 44] = 499\n",
      "\t  [42, 47, 34, 71, 65, 45, 85, 33, 31, 70] = 523\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 84, 75, 25, 69, 20, 4] = 577\n",
      "\t  [86, 57, 13, 15, 77, 35, 56, 92, 63, 11] = 505\n",
      "\t  [19, 76, 79, 22, 1, 54, 36, 61, 29, 64] = 441\n",
      "\t  [32, 2, 100, 82, 39, 73, 28, 9, 87, 55] = 507\n",
      "\t  [41, 40, 66, 68, 21, 5, 43, 78, 37, 88] = 487\n",
      "\t  [52, 6, 38, 80, 49, 94, 72, 3, 90, 8] = 492\n",
      "503 \t [500, 485, 473, 512, 509, 524, 523, 503, 506, 515] \t 483\n",
      " - - - - - - - - - - - 344 0:00:00.175040\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 89, 16, 95, 50, 7, 44] = 499\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\t  [42, 47, 34, 71, 65, 45, 85, 33, 31, 70] = 523\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 84, 75, 19, 69, 20, 4] = 571\n",
      "\t  [86, 57, 13, 15, 77, 35, 56, 92, 63, 11] = 505\n",
      "\t  [25, 76, 79, 22, 1, 54, 36, 61, 29, 64] = 447\n",
      "\t  [32, 2, 100, 82, 39, 73, 28, 9, 87, 55] = 507\n",
      "\t  [41, 40, 66, 68, 21, 5, 43, 78, 37, 88] = 487\n",
      "\t  [52, 6, 38, 80, 49, 94, 72, 3, 90, 8] = 492\n",
      "503 \t [506, 485, 473, 512, 509, 524, 517, 503, 506, 515] \t 483\n",
      " - - - - - - - - - - - 322 0:00:00.180012\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 89, 16, 95, 50, 7, 44] = 499\n",
      "\t  [42, 47, 34, 71, 65, 45, 85, 33, 31, 70] = 523\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 84, 75, 19, 66, 20, 4] = 568\n",
      "\t  [86, 57, 13, 15, 77, 35, 56, 92, 63, 11] = 505\n",
      "\t  [25, 76, 79, 22, 1, 54, 36, 61, 29, 64] = 447\n",
      "\t  [32, 2, 100, 82, 39, 73, 28, 9, 87, 55] = 507\n",
      "\t  [41, 40, 69, 68, 21, 5, 43, 78, 37, 88] = 490\n",
      "\t  [52, 6, 38, 80, 49, 94, 72, 3, 90, 8] = 492\n",
      "503 \t [506, 485, 476, 512, 509, 524, 517, 500, 506, 515] \t 483\n",
      " - - - - - - - - - - - 316 0:00:00.215918\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 89, 16, 95, 50, 7, 44] = 499\n",
      "\t  [42, 47, 34, 71, 65, 45, 85, 33, 31, 70] = 523\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 84, 75, 19, 66, 20, 4] = 568\n",
      "\t  [86, 57, 13, 15, 77, 35, 56, 92, 63, 11] = 505\n",
      "\t  [25, 76, 79, 22, 1, 54, 36, 61, 29, 64] = 447\n",
      "\t  [32, 2, 100, 80, 39, 73, 28, 9, 87, 55] = 505\n",
      "\t  [41, 40, 69, 68, 21, 5, 43, 78, 37, 88] = 490\n",
      "\t  [52, 6, 38, 82, 49, 94, 72, 3, 90, 8] = 494\n",
      "503 \t [506, 485, 476, 512, 509, 524, 517, 500, 506, 515] \t 483\n",
      " - - - - - - - - - - - 312 0:00:00.216914\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 88, 16, 89, 50, 7, 44] = 492\n",
      "\t  [42, 47, 55, 71, 65, 45, 85, 33, 31, 70] = 544\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 84, 75, 19, 66, 20, 4] = 568\n",
      "\t  [86, 57, 13, 15, 77, 35, 56, 92, 63, 11] = 505\n",
      "\t  [25, 76, 79, 22, 1, 54, 36, 61, 29, 64] = 447\n",
      "\t  [32, 2, 100, 80, 39, 73, 28, 9, 87, 34] = 484\n",
      "\t  [41, 40, 69, 68, 21, 5, 43, 78, 37, 95] = 497\n",
      "\t  [52, 6, 38, 82, 49, 94, 72, 3, 90, 8] = 494\n",
      "503 \t [506, 485, 497, 512, 508, 524, 511, 500, 506, 501] \t 504\n",
      " - - - - - - - - - - - 299 0:00:00.217912\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 88, 16, 89, 50, 7, 44] = 492\n",
      "\t  [42, 47, 55, 71, 65, 45, 85, 33, 31, 70] = 544\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 84, 75, 19, 66, 20, 4] = 568\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 11] = 499\n",
      "\t  [25, 76, 79, 22, 1, 54, 36, 61, 29, 64] = 447\n",
      "\t  [32, 2, 100, 80, 39, 73, 28, 15, 87, 34] = 490\n",
      "\t  [41, 40, 69, 68, 21, 5, 43, 78, 37, 95] = 497\n",
      "\t  [52, 6, 38, 82, 49, 94, 72, 3, 90, 8] = 494\n",
      "503 \t [506, 485, 497, 506, 508, 524, 511, 506, 506, 501] \t 510\n",
      " - - - - - - - - - - - 293 0:00:00.218908\n",
      "\t  [96, 53, 30, 18, 26, 81, 60, 10, 59, 74] = 507\n",
      "\t  [67, 93, 24, 14, 88, 16, 89, 50, 7, 44] = 492\n",
      "\t  [42, 47, 55, 71, 65, 45, 85, 33, 31, 70] = 544\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 78, 75, 19, 66, 20, 4] = 562\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 11] = 499\n",
      "\t  [25, 76, 79, 22, 1, 54, 36, 61, 29, 64] = 447\n",
      "\t  [32, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 489\n",
      "\t  [41, 40, 69, 68, 21, 5, 43, 84, 37, 95] = 503\n",
      "\t  [52, 6, 38, 82, 49, 94, 73, 3, 90, 8] = 495\n",
      "503 \t [506, 485, 497, 506, 502, 523, 512, 512, 506, 501] \t 504\n",
      " - - - - - - - - - - - 283 0:00:00.222897\n",
      "\t  [96, 53, 30, 18, 26, 73, 60, 10, 59, 74] = 499\n",
      "\t  [67, 93, 24, 14, 88, 16, 89, 50, 7, 44] = 492\n",
      "\t  [42, 47, 55, 71, 65, 45, 85, 33, 31, 70] = 544\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 78, 75, 19, 66, 20, 4] = 562\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 11] = 499\n",
      "\t  [25, 76, 79, 22, 1, 54, 36, 61, 29, 64] = 447\n",
      "\t  [32, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 489\n",
      "\t  [41, 40, 69, 68, 21, 5, 43, 84, 37, 95] = 503\n",
      "\t  [52, 6, 38, 82, 49, 94, 81, 3, 90, 8] = 503\n",
      "503 \t [506, 485, 497, 506, 502, 515, 520, 512, 506, 501] \t 504\n",
      " - - - - - - - - - - - 279 0:00:00.224892\n",
      "\t  [96, 53, 30, 18, 26, 73, 60, 10, 59, 74] = 499\n",
      "\t  [67, 93, 24, 11, 88, 16, 89, 50, 7, 44] = 489\n",
      "\t  [42, 47, 55, 71, 65, 45, 85, 33, 31, 70] = 544\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 78, 75, 19, 66, 20, 4] = 562\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [25, 76, 79, 22, 1, 54, 36, 61, 29, 64] = 447\n",
      "\t  [32, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 489\n",
      "\t  [41, 40, 69, 68, 21, 5, 43, 84, 37, 95] = 503\n",
      "\t  [52, 6, 38, 82, 49, 94, 81, 3, 90, 8] = 503\n",
      "503 \t [506, 485, 497, 503, 502, 515, 520, 512, 506, 504] \t 504\n",
      " - - - - - - - - - - - 277 0:00:00.226887\n",
      "\t  [96, 53, 30, 18, 26, 73, 60, 10, 59, 74] = 499\n",
      "\t  [67, 93, 24, 11, 88, 16, 89, 50, 7, 44] = 489\n",
      "\t  [42, 47, 55, 71, 65, 36, 85, 33, 31, 70] = 535\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 78, 75, 19, 66, 20, 4] = 562\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [25, 76, 79, 22, 1, 54, 45, 61, 29, 64] = 456\n",
      "\t  [32, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 489\n",
      "\t  [41, 40, 69, 68, 21, 5, 43, 84, 37, 95] = 503\n",
      "\t  [52, 6, 38, 82, 49, 94, 81, 3, 90, 8] = 503\n",
      "503 \t [506, 485, 497, 503, 502, 506, 529, 512, 506, 504] \t 513\n",
      " - - - - - - - - - - - 266 0:00:00.236886\n",
      "\t  [96, 53, 30, 18, 26, 73, 60, 10, 59, 74] = 499\n",
      "\t  [67, 93, 22, 11, 88, 16, 89, 50, 7, 44] = 487\n",
      "\t  [42, 47, 55, 71, 65, 36, 85, 33, 31, 70] = 535\n",
      "\t  [17, 12, 27, 51, 58, 46, 23, 98, 83, 97] = 512\n",
      "\t  [48, 99, 62, 91, 78, 75, 19, 66, 20, 4] = 562\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [25, 76, 79, 24, 1, 54, 45, 61, 29, 64] = 458\n",
      "\t  [32, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 489\n",
      "\t  [41, 40, 69, 68, 21, 5, 43, 84, 37, 95] = 503\n",
      "\t  [52, 6, 38, 82, 49, 94, 81, 3, 90, 8] = 503\n",
      "505 \t [506, 485, 495, 505, 502, 506, 529, 512, 506, 504] \t 513\n",
      " - - - - - - - - - - - 264 0:00:00.238880\n",
      "\t  [96, 53, 30, 18, 26, 73, 60, 10, 59, 74] = 499\n",
      "\t  [67, 93, 22, 11, 88, 16, 89, 50, 7, 44] = 487\n",
      "\t  [42, 47, 55, 71, 65, 36, 85, 33, 31, 70] = 535\n",
      "\t  [17, 12, 27, 40, 58, 46, 23, 98, 83, 97] = 501\n",
      "\t  [48, 99, 62, 91, 78, 75, 19, 66, 20, 4] = 562\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [25, 76, 79, 24, 1, 54, 45, 61, 29, 64] = 458\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 69, 68, 21, 5, 43, 84, 37, 95] = 505\n",
      "\t  [52, 6, 38, 82, 49, 94, 81, 3, 90, 8] = 503\n",
      "516 \t [506, 496, 495, 494, 502, 506, 529, 512, 506, 504] \t 502\n",
      " - - - - - - - - - - - 256 0:00:00.242871\n",
      "\t  [96, 53, 30, 18, 26, 73, 60, 10, 59, 74] = 499\n",
      "\t  [67, 93, 22, 11, 88, 16, 89, 50, 7, 44] = 487\n",
      "\t  [42, 99, 55, 71, 65, 36, 85, 33, 31, 68] = 585\n",
      "\t  [17, 12, 27, 40, 58, 46, 23, 98, 83, 97] = 501\n",
      "\t  [48, 47, 62, 91, 78, 75, 19, 66, 20, 4] = 510\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [24, 76, 79, 25, 1, 54, 45, 61, 29, 64] = 458\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 69, 70, 21, 5, 43, 84, 37, 95] = 507\n",
      "\t  [52, 6, 38, 82, 49, 94, 81, 3, 90, 8] = 503\n",
      "517 \t [505, 496, 495, 497, 502, 506, 529, 512, 506, 502] \t 502\n",
      " - - - - - - - - - - - 255 0:00:00.273808\n",
      "\t  [96, 53, 30, 18, 26, 73, 60, 10, 59, 74] = 499\n",
      "\t  [67, 93, 22, 11, 88, 16, 89, 50, 7, 44] = 487\n",
      "\t  [42, 99, 55, 71, 65, 36, 85, 33, 31, 68] = 585\n",
      "\t  [17, 12, 27, 40, 58, 46, 23, 98, 79, 97] = 497\n",
      "\t  [48, 47, 62, 91, 78, 75, 19, 66, 20, 4] = 510\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [24, 76, 83, 25, 1, 54, 45, 61, 29, 64] = 462\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 69, 70, 21, 5, 43, 84, 37, 95] = 507\n",
      "\t  [52, 6, 38, 82, 49, 94, 81, 3, 90, 8] = 503\n",
      "517 \t [505, 496, 499, 497, 502, 506, 529, 512, 502, 502] \t 502\n",
      " - - - - - - - - - - - 253 0:00:00.277833\n",
      "\t  [96, 53, 30, 18, 26, 73, 59, 10, 60, 74] = 499\n",
      "\t  [67, 93, 22, 11, 88, 16, 89, 50, 7, 44] = 487\n",
      "\t  [42, 99, 55, 71, 65, 36, 85, 33, 31, 68] = 585\n",
      "\t  [17, 12, 27, 40, 58, 46, 23, 98, 79, 97] = 497\n",
      "\t  [48, 47, 62, 91, 78, 75, 19, 66, 20, 4] = 510\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [24, 76, 83, 25, 1, 54, 45, 61, 29, 64] = 462\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 69, 70, 21, 5, 43, 84, 37, 95] = 507\n",
      "\t  [52, 6, 38, 82, 49, 94, 81, 3, 90, 8] = 503\n",
      "517 \t [505, 496, 499, 497, 502, 506, 528, 512, 503, 502] \t 502\n",
      " - - - - - - - - - - - 251 0:00:00.279793\n",
      "\t  [96, 62, 30, 18, 26, 73, 59, 10, 60, 74] = 508\n",
      "\t  [67, 93, 22, 11, 88, 16, 89, 50, 7, 44] = 487\n",
      "\t  [42, 99, 55, 71, 65, 36, 85, 33, 31, 68] = 585\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 97] = 504\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [17, 76, 83, 25, 1, 54, 45, 61, 29, 64] = 455\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 69, 70, 21, 5, 43, 84, 37, 95] = 507\n",
      "\t  [52, 6, 38, 82, 49, 94, 81, 3, 90, 8] = 503\n",
      "517 \t [505, 505, 490, 497, 502, 506, 528, 512, 503, 502] \t 502\n",
      " - - - - - - - - - - - 247 0:00:00.288802\n",
      "\t  [96, 62, 30, 18, 26, 73, 59, 10, 60, 74] = 508\n",
      "\t  [67, 93, 22, 11, 88, 16, 89, 50, 7, 44] = 487\n",
      "\t  [42, 99, 55, 71, 65, 36, 85, 33, 31, 68] = 585\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 97] = 504\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [17, 81, 94, 25, 1, 54, 45, 61, 29, 64] = 471\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 69, 70, 21, 5, 43, 84, 37, 95] = 507\n",
      "\t  [52, 6, 38, 82, 49, 83, 76, 3, 90, 8] = 487\n",
      "517 \t [505, 510, 501, 497, 502, 495, 523, 512, 503, 502] \t 502\n",
      " - - - - - - - - - - - 245 0:00:00.289799\n",
      "\t  [96, 62, 30, 18, 26, 73, 59, 10, 60, 74] = 508\n",
      "\t  [67, 93, 22, 11, 88, 16, 89, 50, 7, 44] = 487\n",
      "\t  [42, 81, 55, 71, 65, 36, 85, 33, 31, 68] = 567\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 94] = 501\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [17, 99, 97, 25, 1, 54, 45, 61, 29, 64] = 492\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 70, 69, 21, 5, 43, 84, 37, 95] = 507\n",
      "\t  [52, 6, 38, 82, 49, 83, 76, 3, 90, 8] = 487\n",
      "517 \t [505, 510, 505, 496, 502, 495, 523, 512, 503, 499] \t 502\n",
      " - - - - - - - - - - - 209 0:00:00.294055\n",
      "\t  [96, 62, 25, 18, 26, 73, 59, 10, 60, 74] = 503\n",
      "\t  [67, 93, 22, 11, 88, 16, 89, 50, 7, 44] = 487\n",
      "\t  [42, 81, 55, 71, 65, 36, 85, 33, 31, 68] = 567\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 94] = 501\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [17, 95, 97, 30, 1, 54, 45, 61, 29, 64] = 493\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 70, 69, 21, 5, 43, 84, 37, 99] = 511\n",
      "\t  [52, 6, 38, 82, 49, 83, 76, 3, 90, 8] = 487\n",
      "522 \t [505, 506, 500, 501, 502, 495, 523, 512, 503, 503] \t 502\n",
      " - - - - - - - - - - - 208 0:00:00.299069\n",
      "\t  [96, 62, 25, 18, 26, 73, 59, 10, 60, 74] = 503\n",
      "\t  [67, 93, 22, 30, 88, 16, 89, 50, 7, 44] = 506\n",
      "\t  [42, 81, 55, 71, 65, 36, 85, 33, 31, 68] = 567\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 94] = 501\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [17, 95, 97, 11, 1, 54, 45, 61, 29, 64] = 474\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 70, 69, 21, 5, 43, 84, 37, 99] = 511\n",
      "\t  [52, 6, 38, 82, 49, 83, 76, 3, 90, 8] = 487\n",
      "503 \t [505, 506, 500, 501, 502, 495, 523, 512, 503, 503] \t 502\n",
      " - - - - - - - - - - - 195 0:00:00.303022\n",
      "\t  [96, 62, 25, 18, 26, 73, 59, 10, 60, 74] = 503\n",
      "\t  [67, 93, 22, 30, 88, 16, 89, 50, 7, 44] = 506\n",
      "\t  [41, 81, 55, 71, 65, 36, 85, 33, 31, 68] = 566\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 94] = 501\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [17, 95, 97, 11, 1, 54, 45, 61, 29, 64] = 474\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 69, 21, 5, 43, 84, 37, 99] = 511\n",
      "\t  [52, 6, 38, 82, 49, 83, 76, 3, 90, 8] = 487\n",
      "503 \t [505, 506, 500, 501, 502, 495, 523, 512, 503, 503] \t 502\n",
      " - - - - - - - - - - - 193 0:00:00.309006\n",
      "\t  [96, 62, 25, 18, 26, 73, 59, 10, 60, 74] = 503\n",
      "\t  [67, 93, 22, 30, 88, 16, 89, 50, 7, 44] = 506\n",
      "\t  [29, 81, 55, 71, 65, 36, 85, 33, 31, 68] = 554\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 94] = 501\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [17, 95, 97, 11, 1, 54, 45, 61, 41, 64] = 486\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 69, 21, 5, 43, 84, 37, 99] = 511\n",
      "\t  [52, 6, 38, 82, 49, 83, 76, 3, 90, 8] = 487\n",
      "503 \t [493, 506, 500, 501, 502, 495, 523, 512, 515, 503] \t 502\n",
      " - - - - - - - - - - - 189 0:00:00.319013\n",
      "\t  [96, 62, 25, 17, 26, 73, 59, 3, 60, 74] = 495\n",
      "\t  [67, 93, 22, 30, 88, 16, 82, 50, 7, 44] = 499\n",
      "\t  [29, 81, 55, 69, 65, 36, 85, 33, 31, 68] = 552\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 94] = 501\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 64] = 487\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 43, 84, 37, 99] = 513\n",
      "\t  [52, 6, 38, 89, 49, 83, 76, 10, 90, 8] = 501\n",
      "503 \t [494, 506, 500, 507, 502, 495, 516, 512, 515, 503] \t 502\n",
      " - - - - - - - - - - - 177 0:00:00.325963\n",
      "\t  [96, 62, 25, 17, 26, 73, 59, 3, 60, 74] = 495\n",
      "\t  [67, 93, 22, 30, 88, 31, 82, 50, 7, 44] = 514\n",
      "\t  [29, 81, 55, 69, 65, 36, 85, 33, 16, 68] = 537\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 94] = 501\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 64] = 487\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 43, 84, 37, 99] = 513\n",
      "\t  [52, 6, 38, 89, 49, 83, 76, 10, 90, 8] = 501\n",
      "503 \t [494, 506, 500, 507, 502, 510, 516, 512, 500, 503] \t 502\n",
      " - - - - - - - - - - - 155 0:00:00.344911\n",
      "\t  [96, 62, 33, 17, 26, 73, 59, 3, 60, 74] = 503\n",
      "\t  [67, 93, 22, 30, 88, 31, 82, 50, 7, 44] = 514\n",
      "\t  [29, 81, 55, 69, 65, 36, 85, 25, 16, 68] = 529\n",
      "\t  [24, 12, 27, 40, 58, 46, 23, 98, 79, 94] = 501\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 64] = 487\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 43, 84, 37, 99] = 513\n",
      "\t  [52, 6, 38, 89, 49, 83, 76, 10, 90, 8] = 501\n",
      "495 \t [494, 506, 508, 507, 502, 510, 516, 504, 500, 503] \t 502\n",
      " - - - - - - - - - - - 139 0:00:00.349899\n",
      "\t  [96, 62, 33, 17, 27, 73, 59, 3, 60, 74] = 504\n",
      "\t  [67, 93, 22, 30, 88, 31, 82, 50, 7, 44] = 514\n",
      "\t  [29, 81, 55, 69, 65, 36, 85, 25, 16, 68] = 529\n",
      "\t  [24, 12, 26, 40, 58, 46, 23, 98, 79, 94] = 500\n",
      "\t  [48, 47, 53, 91, 78, 75, 19, 66, 20, 4] = 501\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 64] = 487\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 43, 84, 37, 99] = 513\n",
      "\t  [52, 6, 38, 89, 49, 83, 76, 10, 90, 8] = 501\n",
      "495 \t [494, 506, 507, 507, 503, 510, 516, 504, 500, 503] \t 502\n",
      " - - - - - - - - - - - 137 0:00:00.357879\n",
      "\t  [96, 62, 33, 17, 27, 73, 59, 3, 60, 75] = 505\n",
      "\t  [67, 93, 22, 30, 88, 31, 82, 50, 7, 44] = 514\n",
      "\t  [29, 81, 55, 69, 65, 36, 85, 25, 16, 68] = 529\n",
      "\t  [24, 12, 26, 40, 58, 46, 23, 98, 79, 94] = 500\n",
      "\t  [48, 47, 53, 91, 78, 74, 19, 66, 20, 4] = 500\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 64] = 487\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 43, 84, 37, 99] = 513\n",
      "\t  [52, 6, 38, 89, 49, 83, 76, 10, 90, 8] = 501\n",
      "495 \t [494, 506, 507, 507, 503, 509, 516, 504, 500, 504] \t 502\n",
      " - - - - - - - - - - - 135 0:00:00.359889\n",
      "\t  [96, 62, 33, 17, 27, 73, 59, 3, 60, 75] = 505\n",
      "\t  [67, 93, 22, 30, 88, 31, 82, 50, 7, 44] = 514\n",
      "\t  [29, 81, 55, 69, 65, 36, 83, 25, 16, 68] = 527\n",
      "\t  [24, 12, 26, 40, 58, 46, 23, 98, 79, 94] = 500\n",
      "\t  [48, 47, 53, 91, 78, 74, 19, 66, 20, 4] = 500\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 64] = 487\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 43, 84, 37, 99] = 513\n",
      "\t  [52, 6, 38, 89, 49, 85, 76, 10, 90, 8] = 503\n",
      "495 \t [494, 506, 507, 507, 503, 511, 514, 504, 500, 504] \t 502\n",
      " - - - - - - - - - - - 131 0:00:00.376825\n",
      "\t  [96, 62, 33, 17, 27, 73, 59, 3, 60, 75] = 505\n",
      "\t  [67, 93, 22, 30, 78, 31, 82, 50, 7, 44] = 504\n",
      "\t  [29, 81, 55, 69, 65, 36, 83, 25, 16, 68] = 527\n",
      "\t  [24, 12, 26, 40, 58, 46, 23, 98, 79, 94] = 500\n",
      "\t  [48, 47, 53, 91, 88, 74, 19, 66, 20, 4] = 510\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 64] = 487\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 43, 84, 37, 99] = 513\n",
      "\t  [52, 6, 38, 89, 49, 85, 76, 10, 90, 8] = 503\n",
      "495 \t [494, 506, 507, 507, 503, 511, 514, 504, 500, 504] \t 512\n",
      " - - - - - - - - - - - 127 0:00:00.378823\n",
      "\t  [96, 62, 33, 17, 27, 73, 59, 3, 60, 75] = 505\n",
      "\t  [67, 93, 22, 30, 78, 31, 82, 50, 7, 44] = 504\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\t  [29, 81, 55, 69, 65, 36, 83, 25, 16, 68] = 527\n",
      "\t  [24, 12, 26, 40, 58, 46, 23, 98, 79, 94] = 500\n",
      "\t  [48, 47, 53, 91, 88, 74, 19, 64, 20, 4] = 508\n",
      "\t  [86, 57, 13, 9, 77, 35, 56, 92, 63, 14] = 502\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 66] = 489\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 43, 84, 37, 99] = 513\n",
      "\t  [52, 6, 38, 89, 49, 85, 76, 10, 90, 8] = 503\n",
      "495 \t [494, 506, 507, 507, 503, 511, 514, 502, 500, 506] \t 512\n",
      " - - - - - - - - - - - 125 0:00:00.384803\n",
      "\t  [96, 62, 33, 17, 27, 73, 57, 3, 60, 75] = 503\n",
      "\t  [67, 93, 22, 30, 78, 31, 82, 50, 7, 44] = 504\n",
      "\t  [29, 81, 55, 64, 65, 36, 83, 25, 16, 68] = 522\n",
      "\t  [24, 12, 26, 43, 58, 46, 23, 98, 79, 94] = 503\n",
      "\t  [48, 47, 53, 91, 88, 74, 19, 69, 20, 4] = 513\n",
      "\t  [86, 59, 13, 9, 77, 35, 56, 92, 63, 14] = 504\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 66] = 489\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 37, 99] = 510\n",
      "\t  [52, 6, 38, 89, 49, 85, 76, 10, 90, 8] = 503\n",
      "495 \t [494, 508, 507, 505, 503, 511, 509, 507, 500, 506] \t 515\n",
      " - - - - - - - - - - - 116 0:00:00.394778\n",
      "\t  [96, 62, 33, 17, 27, 73, 57, 3, 60, 75] = 503\n",
      "\t  [67, 93, 22, 30, 78, 31, 82, 50, 7, 44] = 504\n",
      "\t  [29, 81, 53, 64, 65, 36, 83, 25, 16, 68] = 520\n",
      "\t  [24, 12, 26, 43, 58, 46, 23, 98, 79, 94] = 503\n",
      "\t  [48, 47, 55, 91, 88, 74, 19, 69, 20, 4] = 515\n",
      "\t  [86, 59, 13, 9, 77, 35, 56, 92, 63, 14] = 504\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 41, 66] = 489\n",
      "\t  [42, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 499\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 37, 99] = 510\n",
      "\t  [52, 6, 38, 89, 49, 85, 76, 10, 90, 8] = 503\n",
      "495 \t [494, 508, 507, 505, 503, 511, 509, 507, 500, 506] \t 513\n",
      " - - - - - - - - - - - 114 0:00:00.400795\n",
      "\t  [96, 62, 33, 17, 27, 73, 57, 3, 60, 75] = 503\n",
      "\t  [67, 93, 22, 30, 78, 31, 82, 50, 7, 44] = 504\n",
      "\t  [29, 81, 53, 64, 65, 36, 83, 25, 16, 68] = 520\n",
      "\t  [24, 12, 26, 43, 58, 46, 23, 98, 79, 94] = 503\n",
      "\t  [42, 47, 55, 91, 88, 74, 19, 69, 20, 4] = 509\n",
      "\t  [86, 59, 13, 9, 77, 35, 56, 92, 63, 14] = 504\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 61, 48, 66] = 496\n",
      "\t  [41, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 498\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 37, 99] = 510\n",
      "\t  [52, 6, 38, 89, 49, 85, 76, 10, 90, 8] = 503\n",
      "495 \t [487, 508, 507, 505, 503, 511, 509, 507, 507, 506] \t 513\n",
      " - - - - - - - - - - - 106 0:00:00.406746\n",
      "\t  [96, 62, 33, 17, 27, 73, 57, 3, 61, 75] = 504\n",
      "\t  [67, 93, 22, 30, 78, 31, 82, 50, 7, 44] = 504\n",
      "\t  [29, 81, 53, 64, 65, 36, 83, 25, 16, 68] = 520\n",
      "\t  [24, 12, 26, 43, 58, 46, 23, 98, 79, 94] = 503\n",
      "\t  [42, 47, 55, 91, 88, 74, 19, 69, 20, 4] = 509\n",
      "\t  [86, 59, 13, 9, 77, 35, 56, 92, 63, 14] = 504\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 60, 41, 66] = 488\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 37, 99] = 510\n",
      "\t  [52, 6, 38, 89, 49, 85, 76, 10, 90, 8] = 503\n",
      "495 \t [494, 508, 507, 505, 503, 511, 509, 506, 501, 506] \t 513\n",
      " - - - - - - - - - - - 100 0:00:00.415721\n",
      "\t  [96, 62, 33, 17, 27, 73, 57, 3, 61, 75] = 504\n",
      "\t  [67, 93, 22, 36, 78, 31, 82, 50, 7, 44] = 510\n",
      "\t  [29, 81, 53, 64, 65, 30, 83, 25, 16, 68] = 514\n",
      "\t  [24, 12, 26, 43, 58, 46, 23, 98, 79, 94] = 503\n",
      "\t  [42, 47, 55, 91, 88, 74, 19, 69, 20, 4] = 509\n",
      "\t  [86, 59, 13, 9, 77, 35, 56, 92, 63, 14] = 504\n",
      "\t  [18, 95, 97, 11, 1, 54, 45, 60, 41, 66] = 488\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 37, 99] = 510\n",
      "\t  [52, 6, 38, 89, 49, 85, 76, 10, 90, 8] = 503\n",
      "495 \t [494, 508, 507, 511, 503, 505, 509, 506, 501, 506] \t 513\n",
      " - - - - - - - - - - - 98 0:00:00.427689\n",
      "\t  [96, 62, 33, 17, 27, 73, 57, 3, 61, 75] = 504\n",
      "\t  [67, 93, 22, 36, 78, 31, 82, 50, 7, 44] = 510\n",
      "\t  [37, 81, 53, 64, 65, 30, 83, 25, 16, 68] = 522\n",
      "\t  [24, 12, 26, 43, 58, 46, 23, 98, 79, 94] = 503\n",
      "\t  [42, 47, 55, 91, 88, 74, 19, 69, 20, 4] = 509\n",
      "\t  [86, 60, 13, 9, 77, 35, 54, 92, 63, 14] = 503\n",
      "\t  [18, 95, 97, 11, 1, 56, 45, 59, 41, 66] = 489\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 29, 99] = 502\n",
      "\t  [52, 6, 38, 89, 49, 85, 76, 10, 90, 8] = 503\n",
      "495 \t [502, 509, 507, 511, 503, 507, 507, 505, 493, 506] \t 505\n",
      " - - - - - - - - - - - 96 0:00:00.435668\n",
      "\t  [96, 62, 33, 17, 27, 73, 57, 3, 61, 75] = 504\n",
      "\t  [67, 93, 22, 36, 78, 31, 82, 50, 7, 44] = 510\n",
      "\t  [37, 83, 53, 64, 65, 30, 81, 25, 16, 66] = 520\n",
      "\t  [24, 12, 26, 47, 58, 46, 23, 98, 79, 94] = 507\n",
      "\t  [42, 43, 55, 91, 88, 74, 19, 69, 20, 4] = 505\n",
      "\t  [86, 59, 13, 9, 77, 35, 54, 92, 63, 14] = 502\n",
      "\t  [18, 95, 97, 11, 1, 56, 45, 60, 49, 68] = 500\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 29, 99] = 502\n",
      "\t  [52, 6, 38, 89, 41, 85, 76, 10, 90, 8] = 495\n",
      "495 \t [502, 506, 507, 515, 495, 507, 505, 506, 501, 506] \t 509\n",
      " - - - - - - - - - - - 92 0:00:00.455615\n",
      "\t  [96, 62, 33, 17, 27, 73, 57, 3, 61, 75] = 504\n",
      "\t  [67, 93, 18, 36, 78, 31, 82, 50, 7, 44] = 506\n",
      "\t  [37, 83, 53, 64, 65, 30, 81, 25, 16, 66] = 520\n",
      "\t  [24, 12, 26, 47, 58, 46, 23, 98, 79, 94] = 507\n",
      "\t  [42, 43, 55, 91, 88, 74, 19, 69, 20, 4] = 505\n",
      "\t  [86, 59, 13, 9, 77, 35, 54, 92, 63, 14] = 502\n",
      "\t  [22, 95, 97, 11, 1, 56, 45, 60, 49, 68] = 504\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 29, 99] = 502\n",
      "\t  [52, 6, 38, 89, 41, 85, 76, 10, 90, 8] = 495\n",
      "495 \t [506, 506, 503, 515, 495, 507, 505, 506, 501, 506] \t 509\n",
      " - - - - - - - - - - - 82 0:00:00.459604\n",
      "\t  [96, 62, 33, 17, 27, 73, 57, 3, 61, 75] = 504\n",
      "\t  [67, 93, 18, 36, 78, 31, 82, 50, 7, 44] = 506\n",
      "\t  [37, 83, 53, 64, 65, 30, 81, 25, 16, 66] = 520\n",
      "\t  [24, 12, 26, 47, 58, 46, 23, 98, 79, 94] = 507\n",
      "\t  [42, 43, 55, 91, 88, 74, 19, 69, 20, 4] = 505\n",
      "\t  [86, 59, 13, 9, 77, 35, 54, 90, 63, 14] = 500\n",
      "\t  [22, 95, 97, 11, 1, 56, 45, 60, 49, 68] = 504\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 29, 99] = 502\n",
      "\t  [52, 6, 38, 89, 41, 85, 76, 10, 92, 8] = 497\n",
      "495 \t [506, 506, 503, 515, 495, 507, 505, 504, 503, 506] \t 509\n",
      " - - - - - - - - - - - 80 0:00:00.464590\n",
      "\t  [96, 64, 33, 17, 27, 73, 57, 3, 61, 75] = 506\n",
      "\t  [67, 93, 18, 36, 78, 31, 82, 50, 7, 44] = 506\n",
      "\t  [37, 83, 53, 62, 65, 30, 81, 25, 16, 66] = 518\n",
      "\t  [24, 12, 26, 47, 58, 46, 23, 98, 79, 94] = 507\n",
      "\t  [43, 42, 55, 91, 88, 74, 19, 69, 20, 4] = 505\n",
      "\t  [86, 59, 13, 9, 77, 35, 54, 90, 63, 14] = 500\n",
      "\t  [22, 95, 97, 11, 1, 56, 45, 60, 49, 68] = 504\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 21, 5, 40, 84, 29, 99] = 502\n",
      "\t  [52, 6, 38, 89, 41, 85, 76, 10, 92, 8] = 497\n",
      "495 \t [507, 507, 503, 513, 495, 507, 505, 504, 503, 506] \t 509\n",
      " - - - - - - - - - - - 78 0:00:00.477557\n",
      "\t  [96, 64, 33, 17, 27, 73, 57, 3, 61, 75] = 506\n",
      "\t  [67, 93, 18, 36, 78, 31, 82, 50, 7, 44] = 506\n",
      "\t  [37, 83, 53, 62, 65, 30, 81, 25, 16, 66] = 518\n",
      "\t  [24, 12, 26, 47, 58, 46, 23, 98, 79, 94] = 507\n",
      "\t  [43, 42, 55, 91, 88, 74, 19, 69, 20, 4] = 505\n",
      "\t  [85, 59, 13, 9, 77, 35, 54, 90, 63, 14] = 499\n",
      "\t  [21, 95, 97, 11, 1, 56, 45, 60, 49, 68] = 503\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 22, 5, 40, 84, 29, 99] = 503\n",
      "\t  [52, 6, 38, 89, 41, 86, 76, 10, 92, 8] = 498\n",
      "495 \t [505, 507, 503, 513, 496, 508, 505, 504, 503, 506] \t 509\n",
      " - - - - - - - - - - - 76 0:00:00.486532\n",
      "\t  [96, 64, 27, 17, 33, 73, 57, 3, 61, 75] = 506\n",
      "\t  [67, 93, 18, 36, 78, 30, 82, 50, 7, 44] = 505\n",
      "\t  [37, 83, 53, 62, 65, 23, 81, 25, 16, 66] = 511\n",
      "\t  [24, 12, 26, 47, 56, 46, 31, 98, 79, 94] = 513\n",
      "\t  [43, 42, 55, 91, 88, 74, 19, 69, 20, 4] = 505\n",
      "\t  [85, 59, 13, 9, 77, 35, 54, 90, 63, 14] = 499\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 22, 5, 40, 84, 29, 99] = 503\n",
      "\t  [52, 6, 38, 89, 41, 86, 76, 10, 92, 8] = 498\n",
      "503 \t [505, 507, 497, 513, 500, 502, 513, 504, 503, 506] \t 509\n",
      " - - - - - - - - - - - 74 0:00:00.501263\n",
      "\t  [96, 64, 27, 17, 33, 73, 57, 3, 61, 75] = 506\n",
      "\t  [67, 93, 18, 36, 83, 30, 82, 50, 7, 44] = 510\n",
      "\t  [37, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 506\n",
      "\t  [24, 12, 26, 47, 56, 46, 31, 98, 79, 94] = 513\n",
      "\t  [43, 42, 55, 91, 88, 74, 19, 69, 20, 4] = 505\n",
      "\t  [85, 59, 13, 9, 77, 35, 54, 90, 63, 14] = 499\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 22, 5, 40, 84, 29, 99] = 503\n",
      "\t  [52, 6, 38, 89, 41, 86, 76, 10, 92, 8] = 498\n",
      "503 \t [505, 502, 497, 513, 505, 502, 513, 504, 503, 506] \t 509\n",
      " - - - - - - - - - - - 70 0:00:00.508209\n",
      "\t  [96, 64, 27, 17, 33, 73, 57, 3, 61, 75] = 506\n",
      "\t  [67, 93, 18, 36, 83, 30, 82, 50, 5, 44] = 508\n",
      "\t  [37, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 506\n",
      "\t  [24, 12, 26, 47, 56, 46, 31, 98, 79, 94] = 513\n",
      "\t  [43, 42, 55, 91, 88, 74, 19, 69, 20, 4] = 505\n",
      "\t  [85, 59, 13, 9, 77, 35, 54, 90, 63, 14] = 499\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 71, 22, 7, 40, 84, 29, 99] = 505\n",
      "\t  [52, 6, 38, 89, 41, 86, 76, 10, 92, 8] = 498\n",
      "501 \t [505, 502, 497, 513, 505, 504, 513, 504, 501, 506] \t 509\n",
      " - - - - - - - - - - - 68 0:00:00.522169\n",
      "\t  [96, 64, 27, 17, 33, 73, 57, 3, 61, 75] = 506\n",
      "\t  [67, 93, 18, 36, 83, 30, 82, 50, 5, 44] = 508\n",
      "\t  [37, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 506\n",
      "\t  [24, 12, 26, 47, 56, 46, 31, 98, 79, 94] = 513\n",
      "\t  [43, 42, 55, 91, 88, 74, 19, 69, 20, 4] = 505\n",
      "\t  [85, 59, 13, 9, 77, 35, 54, 90, 71, 14] = 507\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 70, 63, 22, 7, 40, 84, 29, 99] = 497\n",
      "\t  [52, 6, 41, 89, 38, 86, 76, 10, 92, 8] = 498\n",
      "501 \t [505, 502, 500, 505, 502, 504, 513, 504, 509, 506] \t 509\n",
      " - - - - - - - - - - - 64 0:00:00.535138\n",
      "\t  [96, 64, 27, 17, 33, 73, 57, 3, 61, 75] = 506\n",
      "\t  [67, 93, 18, 36, 83, 30, 82, 50, 5, 44] = 508\n",
      "\t  [37, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 506\n",
      "\t  [24, 12, 26, 47, 56, 46, 31, 98, 79, 94] = 513\n",
      "\t  [41, 42, 55, 91, 88, 74, 19, 70, 20, 4] = 504\n",
      "\t  [85, 59, 13, 9, 77, 35, 54, 90, 71, 14] = 507\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 76, 63, 22, 7, 40, 84, 29, 99] = 503\n",
      "\t  [52, 6, 43, 92, 38, 86, 69, 10, 89, 8] = 493\n",
      "501 \t [503, 502, 508, 508, 502, 504, 506, 505, 506, 506] \t 509\n",
      " - - - - - - - - - - - 56 0:00:00.555082\n",
      "\t  [96, 64, 27, 17, 33, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 18, 36, 83, 30, 82, 50, 5, 44] = 508\n",
      "\t  [37, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 506\n",
      "\t  [24, 12, 26, 47, 56, 46, 31, 92, 79, 94] = 507\n",
      "\t  [41, 42, 55, 91, 88, 75, 19, 70, 20, 4] = 505\n",
      "\t  [85, 59, 13, 9, 77, 35, 54, 90, 71, 14] = 507\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 76, 63, 22, 7, 40, 84, 29, 99] = 503\n",
      "\t  [52, 6, 43, 98, 38, 86, 69, 10, 89, 8] = 499\n",
      "501 \t [503, 502, 508, 514, 502, 505, 506, 499, 506, 505] \t 509\n",
      " - - - - - - - - - - - 52 0:00:00.559071\n",
      "\t  [96, 64, 27, 17, 33, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 46, 31, 92, 79, 94] = 503\n",
      "\t  [47, 42, 55, 91, 88, 75, 19, 70, 20, 4] = 511\n",
      "\t  [85, 59, 13, 9, 77, 35, 54, 90, 71, 14] = 507\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 76, 63, 22, 7, 38, 84, 29, 99] = 501\n",
      "\t  [52, 6, 41, 98, 40, 86, 69, 10, 89, 8] = 499\n",
      "501 \t [508, 502, 506, 511, 504, 505, 504, 499, 506, 505] \t 505\n",
      " - - - - - - - - - - - 50 0:00:00.565060\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\t  [96, 64, 27, 17, 33, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 46, 31, 92, 79, 94] = 503\n",
      "\t  [47, 42, 55, 91, 88, 75, 19, 70, 20, 4] = 511\n",
      "\t  [85, 59, 13, 6, 77, 35, 54, 90, 71, 14] = 504\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [32, 51, 76, 63, 22, 7, 38, 84, 29, 99] = 501\n",
      "\t  [52, 9, 41, 98, 40, 86, 69, 10, 89, 8] = 502\n",
      "501 \t [508, 505, 506, 508, 504, 505, 504, 499, 506, 505] \t 505\n",
      " - - - - - - - - - - - 40 0:00:00.580015\n",
      "\t  [96, 64, 27, 17, 32, 73, 57, 3, 61, 74] = 504\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 46, 33, 92, 79, 94] = 505\n",
      "\t  [47, 42, 55, 91, 88, 75, 19, 70, 20, 4] = 511\n",
      "\t  [85, 59, 13, 6, 77, 35, 54, 90, 71, 14] = 504\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 84, 29, 99] = 500\n",
      "\t  [52, 9, 41, 98, 40, 86, 69, 10, 89, 8] = 502\n",
      "503 \t [507, 505, 506, 508, 503, 505, 506, 499, 506, 505] \t 505\n",
      " - - - - - - - - - - - 38 0:00:00.598965\n",
      "\t  [96, 64, 27, 17, 32, 73, 57, 3, 61, 74] = 504\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 46, 33, 92, 79, 94] = 505\n",
      "\t  [47, 42, 55, 89, 88, 75, 19, 70, 20, 4] = 509\n",
      "\t  [85, 59, 13, 6, 77, 35, 52, 90, 71, 14] = 502\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 84, 29, 99] = 500\n",
      "\t  [54, 9, 41, 98, 40, 86, 69, 10, 91, 8] = 506\n",
      "505 \t [509, 505, 506, 506, 503, 505, 504, 499, 508, 505] \t 505\n",
      " - - - - - - - - - - - 36 0:00:00.609941\n",
      "\t  [96, 64, 27, 17, 32, 73, 57, 3, 61, 74] = 504\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 46, 33, 92, 79, 94] = 505\n",
      "\t  [47, 42, 52, 89, 88, 75, 19, 70, 20, 4] = 506\n",
      "\t  [85, 59, 13, 6, 77, 35, 55, 90, 71, 14] = 505\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 84, 29, 99] = 500\n",
      "\t  [54, 9, 41, 98, 40, 86, 69, 10, 91, 8] = 506\n",
      "505 \t [509, 505, 503, 506, 503, 505, 507, 499, 508, 505] \t 505\n",
      " - - - - - - - - - - - 32 0:00:00.614923\n",
      "\t  [96, 64, 27, 17, 32, 73, 57, 3, 61, 74] = 504\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 46, 33, 92, 79, 94] = 505\n",
      "\t  [47, 42, 52, 89, 88, 75, 19, 70, 20, 4] = 506\n",
      "\t  [85, 59, 13, 6, 77, 35, 55, 90, 71, 14] = 505\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 86, 29, 99] = 502\n",
      "\t  [54, 9, 41, 98, 40, 84, 69, 10, 91, 8] = 504\n",
      "505 \t [509, 505, 503, 506, 503, 503, 507, 501, 508, 505] \t 505\n",
      " - - - - - - - - - - - 30 0:00:00.627921\n",
      "\t  [96, 64, 27, 17, 32, 73, 57, 3, 61, 74] = 504\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 47, 33, 92, 79, 94] = 506\n",
      "\t  [46, 42, 52, 89, 88, 75, 19, 70, 20, 4] = 505\n",
      "\t  [85, 59, 13, 6, 77, 35, 55, 90, 71, 14] = 505\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 28, 15, 87, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 86, 29, 99] = 502\n",
      "\t  [54, 9, 41, 98, 40, 84, 69, 10, 91, 8] = 504\n",
      "505 \t [508, 505, 503, 506, 503, 504, 507, 501, 508, 505] \t 505\n",
      " - - - - - - - - - - - 28 0:00:00.641852\n",
      "\t  [96, 64, 28, 17, 32, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 47, 33, 92, 79, 94] = 506\n",
      "\t  [46, 42, 52, 89, 88, 75, 19, 70, 20, 4] = 505\n",
      "\t  [85, 59, 13, 6, 77, 35, 55, 90, 71, 14] = 505\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 27, 15, 87, 34] = 504\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 86, 29, 99] = 502\n",
      "\t  [54, 9, 41, 98, 40, 84, 69, 10, 91, 8] = 504\n",
      "505 \t [508, 505, 504, 506, 503, 504, 506, 501, 508, 505] \t 505\n",
      " - - - - - - - - - - - 26 0:00:00.652863\n",
      "\t  [96, 64, 28, 17, 32, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 47, 33, 92, 79, 94] = 506\n",
      "\t  [46, 42, 52, 86, 88, 75, 19, 70, 20, 4] = 502\n",
      "\t  [85, 59, 13, 6, 77, 35, 55, 90, 71, 14] = 505\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 27, 15, 87, 34] = 504\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [54, 9, 41, 98, 40, 84, 69, 10, 91, 8] = 504\n",
      "505 \t [508, 505, 504, 503, 503, 504, 506, 504, 508, 505] \t 505\n",
      " - - - - - - - - - - - 24 0:00:00.655813\n",
      "\t  [96, 64, 28, 17, 32, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 18, 37, 83, 30, 82, 50, 5, 44] = 509\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 47, 33, 92, 79, 94] = 506\n",
      "\t  [46, 42, 52, 86, 88, 75, 19, 70, 20, 4] = 502\n",
      "\t  [84, 59, 13, 6, 77, 35, 55, 90, 71, 14] = 504\n",
      "\t  [21, 95, 97, 11, 1, 58, 45, 60, 49, 68] = 505\n",
      "\t  [48, 2, 100, 80, 39, 72, 27, 15, 87, 34] = 504\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [54, 9, 41, 98, 40, 85, 69, 10, 91, 8] = 505\n",
      "505 \t [507, 505, 504, 503, 503, 505, 506, 504, 508, 505] \t 505\n",
      " - - - - - - - - - - - 22 0:00:00.676790\n",
      "\t  [96, 64, 28, 17, 32, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 20, 37, 82, 30, 83, 50, 5, 39] = 506\n",
      "\t  [36, 78, 53, 62, 65, 23, 81, 25, 16, 66] = 505\n",
      "\t  [26, 12, 24, 43, 56, 47, 33, 91, 79, 95] = 506\n",
      "\t  [48, 42, 54, 87, 88, 75, 18, 70, 19, 4] = 505\n",
      "\t  [84, 60, 13, 6, 77, 35, 55, 90, 71, 14] = 505\n",
      "\t  [21, 94, 97, 11, 1, 58, 45, 59, 49, 69] = 504\n",
      "\t  [46, 2, 100, 80, 44, 72, 27, 15, 85, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [52, 9, 40, 98, 41, 86, 68, 10, 92, 8] = 504\n",
      "503 \t [507, 505, 505, 504, 508, 506, 505, 502, 506, 502] \t 505\n",
      " - - - - - - - - - - - 20 0:00:00.846305\n",
      "\t  [96, 64, 28, 17, 32, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 20, 37, 82, 30, 83, 50, 5, 39] = 506\n",
      "\t  [36, 78, 53, 65, 62, 23, 81, 25, 16, 66] = 505\n",
      "\t  [26, 12, 24, 43, 56, 47, 33, 91, 79, 95] = 506\n",
      "\t  [48, 42, 54, 87, 88, 75, 18, 70, 19, 4] = 505\n",
      "\t  [84, 60, 13, 6, 77, 35, 55, 90, 71, 14] = 505\n",
      "\t  [21, 94, 97, 11, 1, 58, 45, 59, 49, 69] = 504\n",
      "\t  [46, 2, 100, 80, 44, 72, 27, 15, 85, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [52, 9, 40, 98, 41, 86, 68, 10, 92, 8] = 504\n",
      "503 \t [507, 505, 505, 507, 505, 506, 505, 502, 506, 502] \t 505\n",
      " - - - - - - - - - - - 18 0:00:00.855279\n",
      "\t  [96, 64, 28, 17, 32, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 20, 37, 82, 30, 83, 50, 5, 39] = 506\n",
      "\t  [36, 78, 53, 65, 62, 23, 81, 25, 16, 66] = 505\n",
      "\t  [26, 12, 24, 43, 56, 47, 33, 91, 79, 95] = 506\n",
      "\t  [48, 42, 54, 87, 88, 75, 18, 69, 19, 6] = 506\n",
      "\t  [84, 60, 13, 4, 77, 35, 55, 90, 71, 14] = 503\n",
      "\t  [21, 94, 97, 11, 1, 58, 45, 59, 49, 70] = 505\n",
      "\t  [46, 2, 100, 80, 44, 72, 27, 15, 85, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [52, 9, 40, 98, 41, 86, 68, 10, 92, 8] = 504\n",
      "503 \t [507, 505, 505, 505, 505, 506, 505, 501, 506, 505] \t 505\n",
      " - - - - - - - - - - - 16 0:00:00.868761\n",
      "\t  [96, 64, 28, 17, 32, 73, 57, 3, 61, 74] = 505\n",
      "\t  [67, 93, 20, 37, 82, 30, 83, 50, 5, 39] = 506\n",
      "\t  [36, 79, 52, 65, 62, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 47, 33, 91, 78, 95] = 505\n",
      "\t  [48, 42, 54, 87, 88, 75, 18, 69, 19, 6] = 506\n",
      "\t  [84, 60, 13, 4, 77, 35, 55, 90, 71, 14] = 503\n",
      "\t  [21, 94, 97, 11, 1, 58, 45, 59, 49, 70] = 505\n",
      "\t  [46, 2, 100, 80, 44, 72, 27, 15, 85, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [53, 9, 40, 98, 41, 86, 68, 10, 92, 8] = 505\n",
      "504 \t [506, 506, 506, 505, 505, 506, 505, 501, 505, 505] \t 504\n",
      " - - - - - - - - - - - 14 0:00:00.935616\n",
      "\t  [97, 64, 28, 17, 32, 73, 55, 3, 61, 74] = 504\n",
      "\t  [67, 93, 20, 37, 82, 30, 83, 50, 5, 39] = 506\n",
      "\t  [36, 79, 52, 65, 62, 23, 81, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 47, 33, 91, 78, 95] = 505\n",
      "\t  [48, 42, 54, 87, 88, 75, 18, 69, 19, 6] = 506\n",
      "\t  [84, 60, 13, 4, 77, 35, 57, 90, 71, 14] = 505\n",
      "\t  [21, 94, 96, 11, 1, 58, 45, 59, 49, 70] = 504\n",
      "\t  [46, 2, 100, 80, 44, 72, 27, 15, 85, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [53, 9, 40, 98, 41, 86, 68, 10, 92, 8] = 505\n",
      "504 \t [507, 506, 505, 505, 505, 506, 505, 501, 505, 505] \t 505\n",
      " - - - - - - - - - - - 13 0:00:00.981995\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\t  [97, 64, 28, 17, 32, 73, 55, 4, 61, 74] = 505\n",
      "\t  [67, 93, 20, 37, 82, 30, 83, 49, 5, 39] = 505\n",
      "\t  [35, 79, 52, 65, 62, 24, 81, 25, 16, 66] = 505\n",
      "\t  [23, 12, 26, 43, 56, 48, 33, 91, 78, 95] = 505\n",
      "\t  [47, 42, 54, 87, 88, 75, 18, 69, 19, 6] = 505\n",
      "\t  [85, 59, 13, 3, 77, 36, 57, 90, 71, 14] = 505\n",
      "\t  [21, 94, 96, 11, 1, 58, 45, 60, 50, 70] = 506\n",
      "\t  [46, 2, 100, 80, 44, 72, 27, 15, 84, 34] = 504\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [53, 9, 40, 98, 41, 86, 68, 10, 92, 8] = 505\n",
      "504 \t [505, 505, 505, 504, 505, 509, 505, 502, 505, 505] \t 506\n",
      " - - - - - - - - - - - 12 0:00:01.143735\n",
      "\t  [97, 64, 28, 17, 32, 72, 55, 4, 61, 75] = 505\n",
      "\t  [67, 93, 20, 37, 82, 30, 83, 50, 6, 39] = 507\n",
      "\t  [35, 79, 52, 65, 62, 24, 81, 25, 16, 66] = 505\n",
      "\t  [23, 12, 26, 43, 56, 47, 33, 91, 78, 95] = 504\n",
      "\t  [48, 42, 54, 87, 88, 74, 18, 69, 19, 5] = 504\n",
      "\t  [85, 59, 13, 3, 77, 36, 57, 90, 71, 14] = 505\n",
      "\t  [21, 94, 96, 11, 1, 58, 45, 60, 49, 70] = 505\n",
      "\t  [46, 2, 100, 80, 44, 73, 27, 15, 84, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [53, 9, 40, 98, 41, 86, 68, 10, 92, 8] = 505\n",
      "505 \t [506, 505, 505, 504, 505, 507, 505, 503, 505, 505] \t 506\n",
      " - - - - - - - - - - - 11 0:00:01.275382\n",
      "\t  [96, 64, 28, 17, 32, 72, 55, 4, 61, 75] = 504\n",
      "\t  [67, 93, 20, 37, 82, 30, 81, 50, 6, 39] = 505\n",
      "\t  [35, 79, 52, 65, 62, 24, 83, 25, 16, 66] = 507\n",
      "\t  [23, 12, 26, 43, 56, 47, 33, 91, 78, 95] = 504\n",
      "\t  [48, 42, 54, 87, 88, 74, 18, 70, 19, 5] = 505\n",
      "\t  [85, 59, 13, 3, 77, 36, 57, 90, 71, 14] = 505\n",
      "\t  [21, 94, 97, 11, 1, 58, 45, 60, 49, 69] = 505\n",
      "\t  [46, 2, 100, 80, 44, 73, 27, 15, 84, 34] = 505\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [53, 9, 40, 98, 41, 86, 68, 10, 92, 8] = 505\n",
      "505 \t [505, 505, 506, 504, 505, 507, 505, 504, 505, 504] \t 505\n",
      " - - - - - - - - - - - 10 0:00:01.387107\n",
      "\t  [96, 64, 28, 17, 32, 72, 55, 4, 61, 75] = 504\n",
      "\t  [67, 93, 20, 37, 82, 30, 80, 50, 6, 40] = 505\n",
      "\t  [35, 79, 52, 65, 62, 23, 83, 25, 16, 66] = 506\n",
      "\t  [24, 12, 26, 43, 56, 47, 33, 91, 78, 95] = 505\n",
      "\t  [48, 42, 54, 87, 88, 74, 19, 70, 18, 5] = 505\n",
      "\t  [85, 59, 13, 3, 77, 36, 57, 90, 71, 14] = 505\n",
      "\t  [21, 94, 97, 11, 1, 58, 45, 60, 49, 69] = 505\n",
      "\t  [46, 2, 100, 81, 44, 73, 27, 15, 84, 34] = 506\n",
      "\t  [31, 51, 76, 63, 22, 7, 38, 89, 29, 99] = 505\n",
      "\t  [53, 9, 39, 98, 41, 86, 68, 10, 92, 8] = 504\n",
      "505 \t [506, 505, 505, 505, 505, 506, 505, 504, 504, 505] \t 505\n",
      " - - - - - - - - - - - 8 0:00:01.432957\n",
      "\t  [96, 64, 28, 17, 32, 72, 54, 5, 61, 76] = 505\n",
      "\t  [67, 93, 20, 37, 82, 30, 80, 50, 6, 40] = 505\n",
      "\t  [34, 79, 52, 65, 62, 23, 83, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 47, 33, 91, 78, 95] = 505\n",
      "\t  [48, 42, 55, 87, 88, 74, 19, 70, 18, 4] = 505\n",
      "\t  [85, 59, 13, 3, 77, 36, 57, 90, 73, 14] = 507\n",
      "\t  [21, 94, 97, 11, 1, 58, 45, 60, 49, 68] = 504\n",
      "\t  [46, 2, 100, 81, 44, 71, 27, 15, 84, 35] = 505\n",
      "\t  [31, 51, 75, 63, 22, 7, 38, 89, 29, 99] = 504\n",
      "\t  [53, 9, 39, 98, 41, 86, 69, 10, 92, 8] = 505\n",
      "506 \t [505, 505, 505, 505, 505, 504, 505, 505, 506, 505] \t 505\n",
      " - - - - - - - - - - - 7 0:00:01.542022\n",
      "\t  [96, 64, 28, 17, 32, 72, 54, 5, 61, 76] = 505\n",
      "\t  [67, 93, 20, 37, 82, 30, 80, 50, 6, 40] = 505\n",
      "\t  [34, 79, 52, 65, 62, 23, 83, 25, 16, 66] = 505\n",
      "\t  [24, 12, 26, 43, 56, 47, 33, 91, 78, 95] = 505\n",
      "\t  [48, 42, 55, 87, 88, 74, 19, 70, 18, 4] = 505\n",
      "\t  [85, 58, 13, 3, 77, 36, 57, 90, 73, 14] = 506\n",
      "\t  [21, 94, 97, 11, 1, 59, 45, 60, 49, 68] = 505\n",
      "\t  [46, 2, 100, 81, 44, 71, 27, 15, 84, 35] = 505\n",
      "\t  [31, 51, 75, 63, 22, 7, 38, 89, 29, 99] = 504\n",
      "\t  [53, 9, 39, 98, 41, 86, 69, 10, 92, 8] = 505\n",
      "506 \t [505, 504, 505, 505, 505, 505, 505, 505, 506, 505] \t 505\n",
      " - - - - - - - - - - - 5 0:00:01.665269\n",
      "\t  [96, 64, 28, 17, 32, 72, 54, 5, 61, 76] = 505\n",
      "\t  [67, 93, 20, 37, 82, 30, 80, 50, 6, 40] = 505\n",
      "\t  [34, 79, 52, 65, 62, 23, 83, 25, 16, 66] = 505\n",
      "\t  [24, 10, 26, 43, 56, 47, 33, 92, 78, 95] = 504\n",
      "\t  [48, 42, 55, 87, 88, 74, 19, 70, 18, 4] = 505\n",
      "\t  [85, 58, 13, 3, 77, 36, 57, 89, 73, 14] = 505\n",
      "\t  [21, 94, 97, 11, 1, 59, 45, 60, 49, 68] = 505\n",
      "\t  [46, 2, 100, 81, 44, 71, 27, 15, 84, 35] = 505\n",
      "\t  [31, 51, 75, 63, 22, 7, 38, 90, 29, 99] = 505\n",
      "\t  [53, 12, 39, 98, 41, 86, 69, 9, 91, 8] = 506\n",
      "506 \t [505, 505, 505, 505, 505, 505, 505, 505, 505, 505] \t 505\n",
      " - - - - - - - - - - - 3 0:00:01.873219\n",
      "\t  [96, 63, 27, 16, 32, 72, 54, 5, 64, 76] = 505\n",
      "\t  [65, 93, 20, 39, 82, 31, 79, 49, 7, 40] = 505\n",
      "\t  [36, 78, 52, 62, 61, 23, 83, 25, 17, 68] = 505\n",
      "\t  [24, 10, 26, 43, 56, 45, 33, 99, 73, 95] = 504\n",
      "\t  [48, 42, 55, 87, 88, 74, 19, 70, 18, 4] = 505\n",
      "\t  [85, 59, 12, 3, 77, 35, 57, 89, 75, 13] = 505\n",
      "\t  [21, 94, 97, 11, 2, 58, 46, 60, 50, 67] = 506\n",
      "\t  [47, 1, 98, 86, 44, 71, 28, 15, 81, 34] = 505\n",
      "\t  [30, 51, 80, 66, 22, 6, 37, 84, 29, 100] = 505\n",
      "\t  [53, 14, 38, 92, 41, 90, 69, 9, 91, 8] = 505\n",
      "505 \t [505, 505, 505, 505, 505, 505, 505, 505, 505, 505] \t 505\n",
      " - - - - - - - - - - - 2 0:00:15.914192\n",
      "\t  [96, 50, 25, 17, 28, 72, 61, 5, 75, 76] = 505\n",
      "\t  [66, 93, 18, 39, 83, 31, 78, 49, 8, 40] = 505\n",
      "\t  [34, 89, 52, 63, 62, 23, 64, 26, 24, 68] = 505\n",
      "\t  [16, 14, 27, 43, 60, 45, 32, 99, 74, 95] = 505\n",
      "\t  [47, 20, 56, 87, 88, 73, 19, 69, 42, 4] = 505\n",
      "\t  [86, 79, 12, 3, 77, 36, 54, 90, 58, 10] = 505\n",
      "\t  [22, 94, 97, 11, 1, 57, 46, 59, 48, 70] = 505\n",
      "\t  [55, 2, 98, 85, 44, 71, 33, 15, 67, 35] = 505\n",
      "\t  [30, 51, 82, 65, 21, 6, 37, 84, 29, 100] = 505\n",
      "\t  [53, 13, 38, 92, 41, 91, 81, 9, 80, 7] = 505\n",
      "505 \t [505, 505, 505, 505, 505, 505, 505, 505, 505, 505] \t 505\n",
      " - - - - - - - - - - - 0 0:02:22.627786\n"
     ]
    }
   ],
   "source": [
    "b = get_best()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
